Pular para o conteúdo

Backup Base de Dados PostgreSQL [pg_dump]

Esse script gera backup de bases de dados PostGreSQL usando o pg_dump baseado em 'inúmeras variáveis' que informam o destino do backup e o nome do arquivo, etc.
Emiliano Eloi Silva Barbosa emilianoeloi
Hits: 30.527 Categoria: Shell Script Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Esse script gera backup de bases de dados PostGreSQL usando o pg_dump baseado em 'inúmeras variáveis' que informam o destino do backup e o nome do arquivo, etc.
Download pgbackup.sh Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

#!/bin/sh
# cript que gera backup de bases de dados PostGreSQL
# Referência: http://www.htmlstaff.org/postgresqlmanual/app-pgdump.html
# Emiliano ESB<emilianoeloi@gmail.com>
# C 2005 04 20
# R 2007 04 11[adaptado para o VOL]
#
# VARIAVEIS ##################
vU="postgres"     # Usuario no PostGreSQL
vP="pgsql"        # Senha
vB=$1             # Base De dados
vBI="/usr/local/pgsql/bin/" # Diretorio raiz dos binarios do PostGreSQL
vR="/BackupSuporte/"        # Diretorio raiz
vD="BasesDeDados/"          # Destino do Backup
vPre="basePGSQL"            # Prefixo no nome do arquivo de saida
vE=".dmp"                   # extencao do arquivo de saida
vH="localhost"              # Host do servidor
vAno=`date +%Y` #Ano
vMes=`date +%m` #Mes
vDia=`date +%d` #Dia
vHor=`date +%H` #Hora
vMin=`date +%M` #Min
vCod=`date +%N` #Código date [date (GNU coreutils) 5.3.0]
vDat="$vAno$vMes$vDia-$vHor$vMin-$vCod"
vA=$vPre"-"$vB"-"$vDat$vE
# VALIDAÇÃO ##################
if [ -z $vU ]; then
        echo "Sem usuário";
        exit 0;
fi
if [ -z $vP ]; then
        echo "sem senha";
        exit 0;
fi
if [ -z $vB ]; then
        echo "informe o nome da base de dados";
        exit 0;
fi
# BACKUP #####################
echo "# Gerando backup. Aguarde..."
echo "# Destino: $vR$vD"
echo "# Nome do arquivo: $vA"
$vBI""pg_dump -U $vU -h $vH --format=c --file=$vR$vD$vA $vB
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Mantendo hora do servidor atualizada com NTP

Postando no Twitter

script para tirar ss

Jogar Guitar Hero Online no controle

Monitoramento de espaço em disco

#1 Comentário enviado por augustomarinho em 22/04/2007 - 16:02h
O script de backup realmente é muito bom. Gostaria de fazer uma contribuição, pois no ambiente que tenho montado aqui em casa quem comanda a execução do PostgreSQL é o usuário postgres, inclusive as permissões do diretórios data onde encontram-se os dados pertence a este mesmo usuário. Com isso, para executar o comando pg_dump se faz necessário estar com as permissões deste usuário, e pode ser feito com sudo -u postgres pg_dump ...... e o restante.

Se este script for colocado no cron, para fazer o backup de forma automática, na minha opnião, é importante levar em consideração esta observação.
#2 Comentário enviado por crfjunior em 09/10/2012 - 15:21h
como faço pra omitir a solicitação de senha no script?
#3 Comentário enviado por Ends em 11/10/2013 - 01:26h
Olá...
Interessante o script, porém para agendar no CRON, é necessário que o script não gere saída na tela.
E vi que este script gera algumas saídas na tela. Como você faz para agendar no CRON da forma como se apresenta o script?

Abaixo o script que utilizo, claro que mais simples... não consigo agendar no CRON com ele.

PGPASSWORD=senha_do_banco
export PGPASSWORD

date=$(date '+%d-%m-%Y')

/usr/lib/postgresql/9.1/bin/pg_dump --host localhost --port 5525 --username postgres --format tar --blobs --encoding LATIN1 --verbose --file /opt/backup_sistema/sistema_erp-$date.backup nome_do_banco


Contribuir com comentário

Entre na sua conta para comentar.